home *** CD-ROM | disk | FTP | other *** search
-
-
-
- ccccooooppppyyyybbbb((((DDDD3333)))) ccccooooppppyyyybbbb((((DDDD3333))))
-
-
-
- NNNNAAAAMMMMEEEE
- _cccc_oooo_pppp_yyyy_bbbb - copy a message block
-
- SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- _####_iiii_nnnn_cccc_llll_uuuu_dddd_eeee _<<<<_ssss_yyyy_ssss_////_ssss_tttt_rrrr_eeee_aaaa_mmmm_...._hhhh_>>>>
- _####_iiii_nnnn_cccc_llll_uuuu_dddd_eeee _<<<<_ssss_yyyy_ssss_////_dddd_dddd_iiii_...._hhhh_>>>>
- _mmmm_bbbb_llll_kkkk______tttt _****_cccc_oooo_pppp_yyyy_bbbb_((((_mmmm_bbbb_llll_kkkk______tttt _****_b_p_))))_;;;;
-
- AAAArrrrgggguuuummmmeeeennnnttttssss
- _b_p Pointer to the message block from which data are copied.
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- _cccc_oooo_pppp_yyyy_bbbb allocates a new message block, and copies into it the data from the
- block pointed to by _b_p. The new block will be at least as large as the
- block being copied. The _bbbb______rrrr_pppp_tttt_rrrr and _bbbb______wwww_pppp_tttt_rrrr members of the message block
- pointed to by _b_p are used to determine how many bytes to copy.
-
- RRRReeeettttuuuurrrrnnnn VVVVaaaalllluuuueeeessss
- On success, _cccc_oooo_pppp_yyyy_bbbb returns a pointer to the newly allocated message block
- containing the copied data. On failure, it returns a _NNNN_UUUU_LLLL_LLLL pointer.
-
- UUUUSSSSAAAAGGGGEEEE
- LLLLeeeevvvveeeellll
- Base or Interrupt.
-
- SSSSyyyynnnncccchhhhrrrroooonnnniiiizzzzaaaattttiiiioooonnnn CCCCoooonnnnssssttttrrrraaaaiiiinnnnttttssss
- Does not sleep.
-
- Driver-defined basic locks, read/write locks, and sleep locks may be held
- across calls to this function.
-
- EEEExxxxaaaammmmpppplllleeee
- This example illustrates how _cccc_oooo_pppp_yyyy_bbbb can be used during message
- retransmission. If there are no messages to retransmit, we return (line
- 18). For each retransmission record in the list, we test to see if the
- downstream queue is full with the _cccc_aaaa_nnnn_pppp_uuuu_tttt(D3) function (line 21). If it
- is full, we skip the current retransmission record and continue searching
- the list. If it is not full, we use _cccc_oooo_pppp_yyyy_bbbb(D3) to copy a header message
- block (line 25), and _dddd_uuuu_pppp_mmmm_ssss_gggg(D3) to duplicate the data to be retransmitted
- (line 28). If either operation fails, we clean up and break out of the
- loop.
-
- Otherwise, we update the new header block with the correct destination
- address (line 34), link the message to be retransmitted to it (line 35),
- and send it downstream (line 36). At the end of the list, we reschedule
- a _iiii_tttt_iiii_mmmm_eeee_oooo_uuuu_tttt at the next valid interval (line 39) and return.
-
- _1111 _ssss_tttt_rrrr_uuuu_cccc_tttt _rrrr_eeee_tttt_rrrr_nnnn_ssss _{{{{
- _2222 _mmmm_bbbb_llll_kkkk______tttt _****_rrrr______mmmm_pppp_;;;; _////_**** _mmmm_eeee_ssss_ssss_aaaa_gggg_eeee _tttt_oooo _rrrr_eeee_tttt_rrrr_aaaa_nnnn_ssss_mmmm_iiii_tttt _****_////
- _3333 _llll_oooo_nnnn_gggg _rrrr______aaaa_dddd_dddd_rrrr_eeee_ssss_ssss_;;;; _////_**** _dddd_eeee_ssss_tttt_iiii_nnnn_aaaa_tttt_iiii_oooo_nnnn _aaaa_dddd_dddd_rrrr_eeee_ssss_ssss _****_////
- _4444 _qqqq_uuuu_eeee_uuuu_eeee______tttt _****_rrrr______oooo_uuuu_tttt_qqqq_;;;; _////_**** _oooo_uuuu_tttt_pppp_uuuu_tttt _qqqq_uuuu_eeee_uuuu_eeee _****_////
- _5555 _ssss_tttt_rrrr_uuuu_cccc_tttt _rrrr_eeee_tttt_rrrr_nnnn_ssss _****_rrrr______nnnn_eeee_xxxx_tttt_;;;; _////_**** _nnnn_eeee_xxxx_tttt _rrrr_eeee_tttt_rrrr_aaaa_nnnn_ssss_mmmm_iiii_ssss_ssss_iiii_oooo_nnnn _****_////
-
-
- PPPPaaaaggggeeee 1111
-
-
-
-
-
-
- ccccooooppppyyyybbbb((((DDDD3333)))) ccccooooppppyyyybbbb((((DDDD3333))))
-
-
-
- _6666 _}}}}_;;;;
- _7777 _ssss_tttt_rrrr_uuuu_cccc_tttt _pppp_rrrr_oooo_tttt_oooo_hhhh_eeee_aaaa_dddd_eeee_rrrr _{{{{
- _8888 _llll_oooo_nnnn_gggg _hhhh______aaaa_dddd_dddd_rrrr_eeee_ssss_ssss_;;;; _////_**** _dddd_eeee_ssss_tttt_iiii_nnnn_aaaa_tttt_iiii_oooo_nnnn _aaaa_dddd_dddd_rrrr_eeee_ssss_ssss _****_////
- _...._...._....
- _9999 _}}}}_;;;;
- _1111_0000 _mmmm_bbbb_llll_kkkk______tttt _****_hhhh_eeee_aaaa_dddd_eeee_rrrr_;;;;
- _1111_1111 _ssss_tttt_rrrr_uuuu_cccc_tttt _rrrr_eeee_tttt_rrrr_nnnn_ssss _****_rrrr_llll_iiii_ssss_tttt_;;;;
- _...._...._....
- _1111_2222 _rrrr_eeee_tttt_rrrr_aaaa_nnnn_ssss_mmmm_iiii_tttt_((((_))))
- _1111_3333 _{{{{
- _1111_4444 _mmmm_bbbb_llll_kkkk______tttt _****_bbbb_pppp_,,,, _****_mmmm_pppp_;;;;
- _1111_5555 _ssss_tttt_rrrr_uuuu_cccc_tttt _rrrr_eeee_tttt_rrrr_nnnn_ssss _****_rrrr_pppp_;;;;
- _1111_6666 _ssss_tttt_rrrr_uuuu_cccc_tttt _pppp_rrrr_oooo_tttt_oooo_hhhh_eeee_aaaa_dddd_eeee_rrrr _****_pppp_hhhh_pppp_;;;;
- _1111_7777 _iiii_ffff _((((_!!!!_rrrr_llll_iiii_ssss_tttt_))))
- _1111_8888 _rrrr_eeee_tttt_uuuu_rrrr_nnnn_;;;;
- _1111_9999 _rrrr_pppp _==== _rrrr_llll_iiii_ssss_tttt_;;;;
- _2222_0000 _wwww_hhhh_iiii_llll_eeee _((((_rrrr_pppp_)))) _{{{{
- _2222_1111 _iiii_ffff _((((_!!!!_cccc_aaaa_nnnn_pppp_uuuu_tttt_((((_rrrr_pppp_----_>>>>_rrrr______oooo_uuuu_tttt_qqqq_----_>>>>_qqqq______nnnn_eeee_xxxx_tttt_))))_)))) _{{{{
- _2222_2222 _rrrr_pppp _==== _rrrr_pppp_----_>>>>_rrrr______nnnn_eeee_xxxx_tttt_;;;;
- _2222_3333 _cccc_oooo_nnnn_tttt_iiii_nnnn_uuuu_eeee_;;;;
- _2222_4444 _}}}}
- _2222_5555 _bbbb_pppp _==== _cccc_oooo_pppp_yyyy_bbbb_((((_hhhh_eeee_aaaa_dddd_eeee_rrrr_))))_;;;;
- _2222_6666 _iiii_ffff _((((_bbbb_pppp _====_==== _NNNN_UUUU_LLLL_LLLL_))))
- _2222_7777 _bbbb_rrrr_eeee_aaaa_kkkk_;;;;
- _2222_8888 _mmmm_pppp _==== _dddd_uuuu_pppp_mmmm_ssss_gggg_((((_rrrr_pppp_----_>>>>_rrrr______mmmm_pppp_))))_;;;;
- _2222_9999 _iiii_ffff _((((_mmmm_pppp _====_==== _NNNN_UUUU_LLLL_LLLL_)))) _{{{{
- _3333_0000 _ffff_rrrr_eeee_eeee_bbbb_((((_bbbb_pppp_))))_;;;;
- _3333_1111 _bbbb_rrrr_eeee_aaaa_kkkk_;;;;
- _3333_2222 _}}}}
- _3333_3333 _pppp_hhhh_pppp _==== _((((_ssss_tttt_rrrr_uuuu_cccc_tttt _pppp_rrrr_oooo_tttt_oooo_hhhh_eeee_aaaa_dddd_eeee_rrrr _****_))))_bbbb_pppp_----_>>>>_bbbb______rrrr_pppp_tttt_rrrr_;;;;
- _3333_4444 _pppp_hhhh_pppp_----_>>>>_hhhh______aaaa_dddd_dddd_rrrr_eeee_ssss_ssss _==== _rrrr_pppp_----_>>>>_rrrr______aaaa_dddd_dddd_rrrr_eeee_ssss_ssss_;;;;
- _3333_5555 _bbbb_pppp_----_>>>>_bbbb_pppp______cccc_oooo_nnnn_tttt _==== _mmmm_pppp_;;;;
- _3333_6666 _pppp_uuuu_tttt_nnnn_eeee_xxxx_tttt_((((_rrrr_pppp_----_>>>>_rrrr______oooo_uuuu_tttt_qqqq_,,,, _bbbb_pppp_))))_;;;;
- _3333_7777 _rrrr_pppp _==== _rrrr_pppp_----_>>>>_rrrr______nnnn_eeee_xxxx_tttt_;;;;
- _3333_8888 _}}}}
- _3333_9999 _((((_vvvv_oooo_iiii_dddd_)))) _iiii_tttt_iiii_mmmm_eeee_oooo_uuuu_tttt_((((_rrrr_eeee_tttt_rrrr_aaaa_nnnn_ssss_mmmm_iiii_tttt_,,,, _0000_,,,, _RRRR_EEEE_TTTT_RRRR_NNNN_SSSS______TTTT_IIII_MMMM_EEEE_,,,, _pppp_llll_ssss_tttt_rrrr_))))_;;;;
- _4444_0000 _}}}}
- RRRREEEEFFFFEEEERRRREEEENNNNCCCCEEEESSSS
- _aaaa_llll_llll_oooo_cccc_bbbb(D3), _cccc_oooo_pppp_yyyy_mmmm_ssss_gggg(D3), _mmmm_ssss_gggg_bbbb(D4)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 2222
-
-
-
-